package com.jzo2o.customer.service;

import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.AgencyCertification;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.request.CertificationAuditReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;
import com.jzo2o.customer.model.dto.response.RejectReasonResDTO;

/**
 * <p>
 * 机构认证信息表 服务类
 * </p>
 *
 * @author xd
 * @since 2024-12-12
 */
public interface IAgencyCertificationService extends IService<AgencyCertification> {
    /**
     * 机构认证申请
     * @param dto 申请材料封装类
     */
    void agencyCertification(AgencyCertificationAuditAddReqDTO dto);
    /**
     * 查看机构申请认证驳回原因
     * @return {@code RejectReasonResDTO} 驳回原因包装类
     */
    RejectReasonResDTO getRejectReason();

    /**
     * @author xd
     * 审核机构认证分页查询
     * @param dto 分页条件实体类
     * @return 分页结果包装类
     */
    PageResult<AgencyCertificationAuditResDTO> pageQuery(AgencyCertificationAuditPageQueryReqDTO dto);
    /**
     * @author xd
     * 审核机构认证信息
     * @param dto {@code CertificationAuditReqDTO} 包装认证状态和驳回原因
     * @param id {@code Long} 认证申请信息id
     */
    void audit(CertificationAuditReqDTO dto, Long id);

}
